1. Field of the Invention
The present invention relates generally to the field of Internet multimedia and single media communication, and, more particularly, to a method and system for providing feature-based services using the Session Initiation Protocol.
2. Description of the Related Art
The last twenty years have seen the Internet grow exponentially. From a tool for the technically savvy, the Internet has turned into one of the main communication means of a large segment of the general populace. As it has grown, other tools and technology, such as music and videos, have migrated to the computer-based medium.
One example of migrating technology is the movement of telephony services to the Internet. Internet telephony refers to a wide range of services, not merely the traditional telephone call. In general, it refers to the transport of real-time media, such as voice and video, over the Internet to provide interactive communication among Internet users. Users may access the Internet through a variety of meansxe2x80x94a personal computer (PC), a stand-alone Internet Protocol (IP)-enabled device, or even by dialing up to a gateway from the handset of a traditional Public Switched Telephone Network (PSTN).
The advantages of IP telephony are quite sweeping. It offers high-quality voice communication, improved multiplexing gains, rich computer telephony integration, advanced services, an open market for providers, and reduced cost. Most of these advantages flow from the fact that IP telephony is packet-based, rather than circuit-based, like the present phone system. In a circuit-based communication, such as a phone call on traditional equipment, an actual connection is maintained between the caller and callee through switches and wires. In a packet-based communication, the communication itself is broken down into packets which are sent over a network. This allows for a more efficient use of resources. In addition, IP telephony uses mostly text-based protocols, which allows for easy implementation and debugging in languages such as Java, Tcl, and Perl. The layered protocols in IP telephony are also designed to operate independently of one another. This means that one can use the same higher-layer protocol in a wide range of devices, from cell and desktop telephones to TVs, stereos, and computers, because the lower, physical layers will take care of the differences.
Currently, traditional PSTN telephony uses SS7 (System Signalling 7) as the signalling protocol which establishes, controls, and tears down circuit connections. IP telephony uses SIP (Session Initiation Protocol, RFC 2543) as the signalling protocol for telephony, videoconferencing, and multimedia sessions. SIP provides for establishing and releasing connections.
The SIP protocol is a text-based protocol that works above the transport layer in the TCP/IP (Transport Control Protocol/Internet Protocol) stack. SIP can use any transport protocol, including TCP (Transport Control Protocol) and UDP (User Datagram Protocol) as its transport protocol. In addition, SIP can also work with ATM AAL5 (Asynchronous Transfer Mode ATM Adaption Layer 5), IPX (Internet Packet eXchange), frame relay or X.25 transport protocols.
There are two components in a SIP network: network servers and user agents. A user agent is an end system that acts on behalf of someone who wants to participate in calls. In general, the user agent contains both a protocol client (a user agent client UAC) which initiates a call and a protocol server (user agent server UAS) which responds to a call (see FIG. 1). There are two different types of network servers as well: a proxy server, which receives requests, determines which server to send it to, and then forwards the request; and a redirect server, which receives requests, but instead of forwarding them to the next hop server, tells the client to contact the next hop directly.
The steps in initiating a session are fairly simple: as shown in FIG. 1, (1) the UAC sends an INVITE request to a SIP server, which in this case, is a proxy server. The SIP server will look in its database to determine where to send the INVITE request. Once that is determined, the proxy server sends the INVITE message to the appropriate next hop. In FIG. 1, the next hop is the callee, but, in reality, there could be a number of hops between the SIP server and the callee. If the SIP server was a redirect server, it would inform the UAC what the appropriate next hop is, and let the UAC do the rest. Once (2) the INVITE message finally reaches the callee UAS, (3) the callee UAS responds with an OK message, which (4) is forwarded to the caller UAC. When the caller UAC receives the OK message, indicating the callee has received the INVITE, (5) the UAC sends an ACK message, which, when (6) received, will start the session.
However, there are difficulties in migrating all the current services of traditional telephone networks to Internet telephony and SIP. In traditional networks, the Private Branch Exchange (PBX) is the cornerstone of business voice communication networking. For instance, all the employees at a business will have phones at their desk connected to a PBX, which routes the calls, handles voice mail, and offers other services. The replacement of traditional PBXs with IP-(Internet Protocol)xe2x80x94based PBXs will require that the users have the same services from their IP-enabled desktop telephone that they previously had from their traditional PBX telephone.
An example of the type of services traditional PBXs offer is the Do Not Disturb feature. Do Not Disturb (DND) is often implemented as a button that a user presses so that all calls will be automatically forwarded to the user""s voice mailbox. In a traditional PBX, a DND command message is generally sent from the desktop device to the PBX, which then automatically forwards all calls to the voice mail system. But, in an SIP-based IP telephone network, the desktop telephone, or, more exactly, the user agent server UAS, would perform the forwarding. Although this works in many cases, it assumes the end client device (in this case, the SIP-based IP desktop telephone) has a DND capability, which is not assured. Therefore, there is a need for a system and method for traditional PBX services, such as the DND feature, in end client devices, such as SIP-based IP desktop telephones, without assuming the end client devices have this capability.
In addition, there are other features in traditional PBX systems that require the network server to be notified of status changes, especially when those changes effect the session/call setup handling for a user that has signed up for a network-based service. Examples include unconditional call forwarding, when the user wishes to forward all calls to another number/address; conditional call forwarding, when the user wishes to forward some calls under certain conditions; call blocking, when the user wishes to block certain addresses/numbers from being called; and call screening, when the user wishes to prevent calls from certain address/numbers from being received. Therefore, a need exists for a method and system for the user agent to notify the network server of feature status changes, such as DND, call forwarding, screening and blocking.
An object of the present invention is to provide a system and method which allows the network server in a SIP-based telephony network to perform all the functions of a traditional PBX system.
Another object of the present invention is to allow traditional PBX functions to be performed in a network, without requiring that the end client devices in that network be able to perform all of these functions.
A further object of the present invention is to provide a system and method for notifying network servers of changes to feature information for a particular user or device.
In order to fulfill these and other objects, the present invention provides an extension to the SIP protocol that would be used for notifying network servers of changes to feature information for a particular user or device. This extension, which consists of an extra field header called xe2x80x9cFeaturexe2x80x9d, would allow an end client to inform the network server of feature changes, rather than perform these features itself.